"Firework Simulator" is a simulation program with the ability to generate a single firework in a 3D scene by utilizing a custom-built particle engine. The main goal was to simulate a realistic firework in that they generally aren't perfect spheres (though still relatively circular). The other main goal was to have the particles disperse in a randomized fashion, and not evenly spaced out.
For each firework, an initial shell is "launched" to a pre-specified explosion height. Once it reaches that height, the particle engine takes over. All particles have their original starting position as the explosion point. Each particle is given a randomized direction vector for the direction it will travel. Each firework is comprised of approximately 100 different particles that fade after a given amount of time.
The initial shell prior to the firework's explosion lights the surrounding scene. The particles themselves do not light the scene, however they do emit light. The color of the firework may also be cycled through a predetermined set of colors (White, Red, Green, and Yellow).
A firework is launched upon opening the program. To launch another firework, press the 'R' key. The left mouse button may also be used to look around the world and view the firework from different angles.